<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>什么是递归函数</title>
</head>

<body>

</body>
<script>
  "use strict"; {
    // 递归函数: 函数内容自己调用自己，这个函数就是递归函数
    let num = 0;
    let fn = () => {
      console.log(`我要打印${num}`);
      if (num == 6) {
        return;  //递归里面必须加退出条件
      };
      num++;
      fn();
    };
    fn();
  }; {
    // 利用递归求1~n的阶乘 1 * 2 * 3 * 4 * 5
    let fn = (n) => {
      // n = 1时直接退出递归
      if (n == 1) return 1;
      return n * fn(n - 1);
    };
    let i = fn(3);
    console.log(i);
  }; {
    // 使用递归计算斐波那契数列 1、1、2、3、5、8、13、21...
    let fb = (n) => {
      if (n == 1 || n == 2) return 1;
      return fb(n - 1) + fb(n - 2);
    };
    console.log(`斐波那契数列`, fb(6));
  };
</script>


</html>